home *** CD-ROM | disk | FTP | other *** search
- WHAT IS TCOMP?
-
- TCOMP exists because I had an unknown problem that was
- causing a random file corruption that I couldn't figure out.
- Data files and executable files were mysteriously being
- corrupted in my PC and I had no way of telling if the
- corruption was caused by a bad server, bad cabling, or my
- local PC. The only troubling shooting help I could get was
- the standard "remove all of your TSRs and Device Drivers and
- see if your local hardware is causing the problem".
- Unfortunately, my problem was a DOS session in Windows being
- hung in a networked environment as I compiled software. I
- couldn't very well repeat my problem in a simpler
- environment since all of my development environment came
- across the LAN and it was only in my complete environment
- that the problem occurred.
- TCOMP is a diagnostic program I wrote to try and get a
- handle on the symptom. It still doesn't tell you who is at
- fault. But it captures and saves the bad files as data
- files instead of letting the Windows DOS emulator hang
- accessing them as executable ones. In my case it told me
- which of our two file servers was exhibiting this strange
- symptom. It also let me analyze the corrupted files to see
- what pattern they had.
-
-
- WHAT DOES TCOMP DO?
-
- TCOMP uses a starting LAN location and file
- specification that you supply and then repeatably transfers
- the files found to your local HDD, checking each transfer
- for integrity with a simple checksum. It recursively
- searches for files to use starting from the LAN location you
- specify. It allows you to control the name suffix of the
- files checked. It allows you to transfer either standard or
- random block sizes to test for LAN driver errors.
- When a bad file is found (checksum of current transfer
- doesn't match checksum of initial read or size is
- different), it is saved to a local directory location that
- you supply. The entire bad file is saved along with some
- other information about the failure: full path of bad file,
- date/time stamp of original file, size of original file,
- block size being read when file failed, and whether the file
- failed with a bad checksum or with a size corruption.
- Since I like feedback in my diagnostic programs, TCOMP
- tells you lots of worthless info for each file it is
- checking. It counts 1K, 10K and 100K sizes as the reading
- and checking phases run, so you will know how big the file
- being read is. It also tells you how many cumulative phases
- (or passes through the selected file set) have run and how
- many errors have been found. The file count for the current
- phase is displayed so you will know how far along the
- checking is. When a bad file is found the screen also
- displays information about the error. This information is
- also saved to disk along with the bad file. It also tells
- you the block size the current file is being read with.
-
-
- HOW DOES TCOMP DO IT'S JOB?
-
- TCOMP first does a file count of the location and file
- specification requested to make sure that it can handle the
- number of files selected. It also tells you what the total
- transfer size will be so you can make sure it is larger than
- any caches you might have active. Then it does a phase that
- searches each of those files to build the checksum list that
- will be used for all subsequent reads. From this point on
- it loops for the number of phases requested-- or forever or
- until you abort it-- reading the file set and comparing each
- new checksum and size against the saved ones.
-
-
- HOW DO YOU CONTROL TCOMP?
-
- Typing "tcomp" from the command line will display it's
- syntax, a short example and a brief explanation:
-
- d:\code\tools\src>tcomp
- tcomp v1.4
- usage: tcomp spath dpath fspec lastphase [blksize]
- ex: tcomp z:\public d: *.exe 3 0
- will do one full pass,
- create or use d:\tdir for local storage,
- and will randomize the file request sizes
- files selected will iterate 'lastphase'-2 times
- 'lastphase' of -1 runs forever
- 'blksize' must be <= 10000 (def)
- 'blksize' == 0 means make each file request random sized
-
- "spath" is the source path to use a the directory root
- for the recursive file search.
- "dpath" is the root to use for the temporary files read
- for the file set and as a starting point to store any bad
- files captured. A directory called TDIR will always be
- created beneath "dpath". Any found bad files will
- sequentially be put in subdirectories beneath
- "dpath\TDIR\ERRxxx, where xxx is decimal number.
- "fspec" is the simple file specification to qualify
- files to check with. Some examples are: *.c, *.* and
- *.exe.
- "lastphase" is the phases of testing to run through.
- Phase 0 signs on but doesn't do much useful. Phase 1 does
- the count of files to check and their size. Phase 2 does
- the count and size checks, and then does the first pass
- through reading all of the files to build their checksums.
- Phase 3 or greater controls testing for a finite number of
- times. The number of times the file set will be read and
- compared will be "lastphase" minus 2; using "lastphase" = 10
- reads the file set 8 times. To make it run until you abort
- it (control-c) use a "-1" for "lastphase".
- "blksize" is optional and control the file request size
- and (indirectly) the LAN packet block/deblock size. The
- default is 10000 bytes, and will be the fastest. You can
- set it to any other smaller size you want. Setting
- "blksize" to 0 causes each new file and each time through
- the file set to choose a different file request size. All
- requests for the current file will be the same size.
-
- The output display for the current file status shows a
- '.' for each 1K read, a '-' for each 10K read, and a '=' for
- each 100K read. These characters usually erase as they go
- from one order of magnitude to another so you can tell the
- rough file size by reading the ='s, -'s and .'s
-
-
- LIMITATIONS OF TCOMP:
-
- 1) No more than 1000 files in a file set
- 2) Date/time stamp of saved bad file doesn't match original
- 3) Selected blocksize must be less than 10000 bytes
- 4) Always creates \TDIR to store bad files in
- 5) Saved subdirectory names stop at \ERR999
-
-
- OTHER STANDARD STUFF:
-
- License
- -------
-
- Copyright (C) Mark Bice 1993.
- All rights reserved.
-
- Disclaimer and License
-
- YOUR FIRST USE OF THIS SOFTWARE CONSTITUTES AGREEMENT TO THE
- FOLLOWING PROVISIONS. IF YOU DO NOT AGREE TO THEM, PLEASE
- DO NOT USE THIS PROGRAM!
-
- TCOMP is a copyrighted, proprietary program offered "as is",
- without any warranty of merchantability or fitness for a
- particular purpose, performance, or otherwise; all
- warranties are expressly disclaimed. By using TCOMP, you
- agree that the author will not be liable for any use of (or
- inability to use) or performance of this product, or for any
- damages whatsoever.
-
- This software is being distributed as a Freeware. You may
- use this program freely. You may also copy and distribute
- this program, as long as all the files are distributed
- intact in a single archived file. You may not sell this
- program, and you may charge only nominal fee for
- distribution not exceeding $5.00 a copy.
-
- I would appreciate any bug reports, comments or suggestions.
- Please contact me at:
-
- US Mail: Mark Bice
- 17619 N. 63rd Ave.
- Glendale, AZ 85308
- CompuServe: 72641,607
-
-
-